/**
 * 此类是以像素坐标表示的地图上的一个点
 */
export interface PointOptions {
    /**
     * 像素坐标中 `x` 坐标， `x` 坐标向右增大
     */
    x: number;

    /**
     * 像素坐标中 `y` 坐标， `y` 坐标向下增大
     */
    y: number
}

/**
 * 此类是以像素坐标表示的地图上的一个点
 */
export interface Point {
    readonly x: number;
    readonly y: number;

    /**
     * 根据给定 `x` 和 `y` 坐标创建地图上的一个像素坐标点
     */
    new(x: number, y: number): Point

    /**
     * 判断坐标点是否相等，当且仅当两点的 `x` 坐标和 `y` 坐标均相等时返回 `true`
     *
     * @param other 点的像素坐标
     */
    equals: (other: Point) => boolean;

    /**
     * 获得当前点与给定的的距离
     *
     * @param other 点的像素坐标
     */
    distanceTo: (other: Point) => number
}
